package com.sun.umbrella.dao;

import com.sun.umbrella.domain.entity.FilterChainsDO;
import com.sun.umbrella.domain.query.FilterChainsQuery;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * @author Jay
 * @version v1.0
 * @description 过滤器资源
 * @date 2017-12-03 21:32
 */
@Component
public interface FilterChainsMapper {

    /**
     * 插入资源记录
     *
     * @param filterChainsDO
     * @return
     */
    int insertFilterChains(FilterChainsDO filterChainsDO);

    /**
     * 根据sysId查询过滤器资源
     *
     * @param sysId
     * @return
     */
    List<FilterChainsDO> selectBySysId(Integer sysId);


    /**
     * 更新过滤器资源
     *
     * @param filterChainsDO
     * @return
     */
    int updateFilterChains(FilterChainsDO filterChainsDO);


    /**
     * 查询过滤器配置列表
     *
     * @param filterChainsQuery
     * @return
     */
    List<FilterChainsDO> selectFilterChainsList(FilterChainsQuery filterChainsQuery);

    /**
     * 查询过滤器配置记录总数
     *
     * @param filterChainsQuery
     * @return
     */
    int countFilterChainsList(FilterChainsQuery filterChainsQuery);


    /**
     * 根据sysId和id查询配置资源记录
     *
     * @param sysId
     * @param id
     * @return
     */
    FilterChainsDO selectBySysIdAndId(@Param("sysId") Integer sysId, @Param("id") Integer id);


    /**
     * 根据sysId和id删除配置资源
     *
     * @param sysId
     * @param id
     * @param modifier
     * @return
     */
    int deletedFilterChains(@Param("sysId") Integer sysId, @Param("id") Integer id, @Param("modifier") Integer modifier);


    /**
     * 更新状态是否启用
     *
     * @param id
     * @param modifier
     * @param enabledState
     * @return
     */
    int updateFilterChainsEnable(@Param("id") Integer id, @Param("modifier") Integer modifier, @Param("enabledState") Integer enabledState);
}